package com.xsq.newmall01.ServiceImpl.UserServiceImpl;

import com.xsq.newmall01.Dao.User;
import com.xsq.newmall01.Exception.ServiceException;
import com.xsq.newmall01.Mapper.UserMapper;
import com.xsq.newmall01.Service.UserService.URegisterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service("userregisterservice")
public class URegisterServiceImpl implements URegisterService {

    @Autowired
    private UserMapper userMapper;

    public void register(User user) {
        // 1. 校验用户名是否重复
        if (userMapper.checkUsernameExists(user.getUsername())) {
            throw new ServiceException("用户名已存在");
        }
        // 2. 校验手机号格式（11位数字）
        if (user.getPhone() != 0 && !isValidPhone(String.valueOf(user.getPhone()))) {
            throw new ServiceException("手机号格式错误（需11位数字）");
        }
        // 2. 校验昵称长度（≤7个字符）
        if (user.getNickname() != null && user.getNickname().length() > 7) {
            throw new ServiceException("昵称长度不能超过7个字符");
        }
        // 4. 校验邮箱格式
        if (user.getEmail() != null && !isValidEmail(user.getEmail())) {
            throw new ServiceException("邮箱格式错误（例如：xxx@xxx.com）");
        }
        // 3. 执行注册
        userMapper.insertuser(user);
    }

    // 手机号校验工具方法
    private boolean isValidPhone(String phone) {
        return phone.matches("^1[3-9]\\d{9}$");
    }
    // 邮箱校验工具方法
    private boolean isValidEmail(String email) {
        // 简单邮箱正则（可根据需求细化）
        return email.matches("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$");
    }
}
